#include <iostream>
#include <vector>
using namespace std;

int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) 
{
    int m=obstacleGrid.size();
    int n=obstacleGrid[0].size();
    vector<vector<int>> dp(m+1,vector<int>(n+1));
    dp[1][0]=1;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(obstacleGrid[i-1][j-1]==0)
            {
                dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
    }
    return dp[m][n];
}

int main()
{
  vector<int> obj(8);
  vector<vector<int>> ob(5,obj);
  int un2=uniquePathsWithObstacles(ob);
  cout<<un2<<endl;
}
